package main.java.string;
/* 字符串的操作应用 */
public class StringBuilderDemo {
    public static void main(String[] args) {
        //创建对象
        String str ="好好学习Java";
        //创建新对象，并赋值
        StringBuilder sb = new StringBuilder(str);
        //将当前字符串追加到新对象后面
        sb.append("，为了找个好工作");
        //输出拼接后的对象
        System.out.println(sb);
        //将对象转换为字符串  toString()：返回当前对象的字符串表示
        //通过StringBuilder将修改后的内容以字符串形式返回
        String s = sb.toString();
        //输出拼接后的字符串
        System.out.println(s);

        /*
            修改字符串操作：replace(替换)
            好好学习Java，为了找个好工作
            将 为了找个好工作  替换为 就是为了改变世界！
         */
        //含头不含尾，截取字符串
        //三个逗号 第一个逗号表示从索引9开始，第二个逗号截取到索引16，但不包含索引16
        //第三个逗号表示字符串里面的内容需要修改成什么
        sb.replace(9,16,"就是为了改变世界！");
        //输出修改拼接后的字符串
        System.out.println(sb);

        /*
            删除字符串操作：delete(删除)
            将 好好学习Java 删除  只保留  ，为了找个好工作
         */
        //含头不含尾，截取字符串
        //删除从索引0开始，到索引8，但不包含索引8
        sb.delete(0,8);
        //输出删除拼接后的字符串
        System.out.println(sb);

        /*
            插入字符串操作：insert(插入)
            ，就是为了改变世界！  修改为  活着，就是为了改变世界！
         */
        //含头不含尾，截取字符串
        //从索引0开始，插入字符串  活着
        sb.insert(0, "活着");
        //输出插入字符串后的完整字符串
        System.out.println(sb);

        /*
            insert（int index，String str）
            将指定的内容插入到index指定位置
         */


        //增删改插四个操作返回的是StringBuilder对象本身，因此可以连续调用操作
        sb.append("，为了找个好工作")
          .replace(9,16,"就是为了改变世界！")
          .delete(0,8)
          .insert(0, "活着");
        System.out.println(sb);

        //反转字符串
        sb.reverse();
        System.out.println(sb);
    }
}
